package com.wgy.day30.递归;

import java.io.File;

/*
  递归练习三:
        递归打印多级目录
       要求:遍历D:\\小云\\abc文件夹,及文件夹的子文件夹
       D:\\小云\\abc
       D:\\小云\\abc.txt
       D:\\小云\\abc.java
       D:\\小云\\abc\\a
       D:\\小云\\abc\\a\\a.java
       D:\\小云\\abc\\a\\a.jpg
       D:\\小云\\abc\\b
       D:\\小云\\abc\\b\\b.java
       D:\\小云\\abc\\a\\b.txt

 */
public class Demo04Recursion {
    public static void main(String[] args) {
        File f1=new File("D:\\小云\\abc");

        getAllFile(f1);

    }
    public static void getAllFile(File dir){
        System.out.println(dir);

        File[] list = dir.listFiles();
        //对遍历得到的File对象f进行判断,判断是否是文件夹
        for (File f : list) {
            //如果是文件夹,就继续遍历这个文件夹
            //getAllFile()方法参数传递的就是文件夹,是遍历文件夹的方法
            //所以直接调用getAllFile方法即可:递归(自己调用自己)
            if(f.isDirectory()){
                getAllFile(f);
            }else{
                //不是文件夹,就直接打印即可
                System.out.println(f);
            }


        }

    }
}
